<?php namespace Common\Model;
use Hdphp\Model\Model;
class Link extends Model{
	//指定模型操作
	protected $table = 'link';
	//自动验证属性
	protected $validate = array(
	    array('lname','required','链接名称必填',3,3),
	);
	//自动完成属性
	protected $auto = array(
	    array('addtime','time','function',3,1),
	    array('logo','getLogo','method',3,3),
	);
	//logo
	public function getLogo(){
		//如果没有文件上传
		//上传文件错误4(没有文件上传)
		if($_FILES['logo']['error']==4){
			//发生文件没有上传的错误自主压入错误信息,然后返出一个值给控制器
			$this->error='缩略图必须上传';
			return;
		}
		//1.上传
		//框架内置上传的方法,可以设置路径,大小,类型,错误等,最后以make()结尾
		$files = Upload::path('./Upload/' . date('ymd'))->type('jpg,png,gif')->make();
		//如果$files为空数组,也就是上传失败,比如类型不允许,大小不允许等
		if(!$files){
			//把调入的错误压入当前模型的error属性,这样外面的控制器就可以用getError方法调用
			$this->error=Upload::getError();
			return;
		}
		//p($files);
		
	    //2.缩略
	    // ./Upload/160712/471.jpg 变成 ./Upload/160712/471_logo.jpg
	    $path = $files[0]['path'];//上传文件的路径
		$type = strrchr($path, '.');//从上传文件路径的右边第一个.开始截取,结果是.jpg
		//新的路径:把上传文件原来的路径用_thumb.jpg替换.jpg
		$newPath = str_replace($type, '_logo'.$type, $path);
		//缩略图框架内置语法:  6: 缩略图尺寸不变，自动裁切图片
		Image::thumb($path,$newPath,100,100,5);
		//返回一个新的路径
		return $newPath;
	}
	
	//添加方法
	public function store(){
		//一,先验证*****
		//1.article验证
		//create触发自动验证和自动完成
		//验证没有通过的时候(触发错误提示)
		if(!$this->create()){
			return false;
		}
		//如果有错误就返回false，这个错误是在上传失败的时候赋值的
		if($this->error){
			return false;
		}
		//上面已经由create触发验证,如果验证通过,就触发添加
			$this->add();
		    return true;
	}
	
	//编辑
	public function edit(){
		//create自动触发验证,通过rerun返回值判断验证
		if($this->create()){
			//修改(不用写where条件的原因是因为edit.php页面有一个隐藏域)
		    $this->save();
			//如果添加正确就返回一个值,输出成功提示
			return true;
		}
		//如果添加错误就返回一个错误的提示
		return false;	
	}
}






























 ?>
